Al lanzar un zypper up vemos un mensaje como el siguiente:
Se puede ver que hay actulizaciones pero no se instalan.
Esto se produce porque las actualizaciones que hay disponibles son de un proveedor (Repositorio) distinto del que utilizamos para instar el paquete inicialmente
si por ejemplo intentamos actualizar el paquete libSDL-1_2-0 de manera manual vemos lo siguiente:
Como se puede ver al intentar la actualizacion de manuera manual el propio zypper nos indica que hay una actualizacion pero que es de un proveedor distinto al que tiene configurado el paquete actualmente
Podemos hacer una busqueda del propio paquete de la siguiente manera para ver todas las versiones disponibles:
zypper se -s libSDL-1_2-0
En la busqueda se nos muestra que la version mas reciente es la 1.2.15-93.43 pero como se puede ver es del repositorio "Games" y el paquete que tenemos instalado es del repositorio "Repositorio principal (OSS)"
NOTA: A la izquierda de la busqueda la "i" nos indica el paquete que esta instalado, la "v" nos indica una version distinta del mismo paquete que tenemos instalado (version distinta puede ser no solo version si no tambien arquitectura distinta)
Si queremos instalar esa actualizacion mas reciente tenemos que forzar el cambio de proveedor, para ello podemos usar el siguiente fomando
zypper in libSDL-1_2-0-1.2.15-93.43.x86_64
Se trata de forzar la instalacion de la version concreta a la que queremos actualizar, a continuacion zypper nos preguntara si queremos instalar ese paquete realizando el cambio de proveedor.
Una vez finalizada la instalacion si volvemos a lanzar el zypper up podemos ver que el paquete que acabamos de actualizar ya no aparece (ya esta en su version mas actual).
En el caso de que quisieramos volver atras e instalar otra vez la version del otro proveedor tendriamos que hacerlo de la siguiente manera:
zypper in --oldpackage libSDL-1_2-0-1.2.15-22.11.x86_64
En este caso tenemos que utilizar la opcion --oldpackage para forzar la desactualizacion
zypper | actualizaciones